package file;

import java.io.File;
import java.util.Scanner;

public class Demo10 {

    private static Scanner scanner = new Scanner(System.in);
    public static void main(String[] args) {

        //1.让用户输入一个目录,后续的查找都是针对这个目录的
        System.out.println("请输入要搜素的目录: ");
        File rooPath = new File(scanner.next());
        //2.让用户输入要搜索/删除的关键词
        System.out.println("请输入要删除的关键词: ");
        String word = scanner.next();
        //3.判断一下当前输入的目录是否有效
        if (!rooPath.isDirectory()){
            System.out.println("您此时输入的路径不是合法目录!");
            return;
        }
        //4.遍历目录,从根目录出发,按照深度优先的方式,进行遍历
        scanDir(rooPath,word);

    }

    public static void scanDir(File currentDir,String word){
        //1.先列出当前目录中都包含哪些内容
        File[] files = currentDir.listFiles();
        if (files == null || files.length == 0){
            //空目录或非法目录
            return;
        }
        //2.遍历列出的文件,分两个情况分别讨论
        for (File f : files){
            //加个日志,方便看程序执行的过程
            System.out.println(f.getAbsoluteFile());

            if (f.isFile()){
                //3.如果当前文件是普通文件,看看是否包含了word,来决定是否要删除
                dealFile(f,word);
            }else {
                //4.如果当前文件就目录文件,就递归执行scanDir
                scanDir(f,word);
            }
        }
    }

    private static void dealFile(File f, String word){
        //1.先判定当前文件名是否包含word
        if (!f.getName().contains(word)){
            //此时这个文件不包含关键字,直接跳过
            return;
        }

        //2,包含word,询问用户是否删除该文件
        System.out.println("请输入该文件是:" +f.getAbsoluteFile() + "是否要删除?y/n");
        String choice = scanner.next();
        if (choice.equals("y")||choice.equals("Y")){
            f.delete();
        }
        //如果是其它,忽略
    }
}
